Social Services


Unemployment and maternity benefits


SOX006_raw <- 
  statgl_url("SOX006", lang = language) |> 
  statgl_fetch(
    municipality = px_all(),
    unit         = px_all(),
    type         = px_all(),
    time         = px_top(),
    .col_code    = T
  ) |> 
  as_tibble()

SOX006 <- 
  SOX006_raw |> 
  mutate(municipality = municipality |> fct_inorder(),
         type = type |> fct_inorder()) |>
  spread(type, value) |> 
  arrange(unit) 

SOX006 |> 
  select(-c(2, 3)) |> 
  rename(" " = 1) |> 
  statgl_table() |> 
  pack_rows(index = table(SOX006[[3]])) |> 
  pack_rows(index = table(SOX006[2])) |> 
  row_spec(c(1, 7), bold = T)
Unemployment benefits, total Unemployment benefit, basic Unemployment benefit, termination Unemployment benefit, disease Maternity benefits
2022
Amount (1000 DKK)
Total 28.314 9.252 3.462 15.600 35.119
Kommune Kujalleq 5.329 3.168 14 2.147 4.317
Kommuneqarfik Sermersooq 7.453 3.080 18 4.355 10.739
Qeqqata Kommunia 5.355 1.783 431 3.142 7.735
Kommune Qeqertalik 5.183 930 1.409 2.844 4.222
Avannaata Kommunia 4.994 291 1.590 3.112 8.107
Number
Total 3.056 757 396 2.197 846
Kommune Kujalleq 472 276 1 250 101
Kommuneqarfik Sermersooq 662 152 2 533 272
Qeqqata Kommunia 736 210 101 520 171
Kommune Qeqertalik 572 80 113 436 103
Avannaata Kommunia 614 39 179 458 199


See the table in our Statbank: SOX006

Foster care
SOXPV004_raw <- 
  statgl_url("SOXPV004", lang = language) %>%
  statgl_fetch(
    municipality = px_all(),
    year = px_top(1),
    .col_code = TRUE
  ) %>% 
  as_tibble()



SOXPV004_raw %>% 
  mutate(municipality = municipality %>% fct_inorder()) %>% 
  spread(year, value) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  row_spec(1, bold = TRUE)
2023
Total 409
Kommuneqarfik Sermersooq 151
Avannaata Kommunia 60
Kommune Qeqertalik 51
Qeqqata Kommunia 71
Kommune Kujalleq 76


See the table in our Statbank: SOXPV004

Public benefits
SOX004_raw <- 
  statgl_url("SOX004", lang = language) %>% 
  statgl_fetch(
    municipality = px_all(),
    unit         = px_all(),
    type         = 10,
    time         = px_top(),
    .col_code    = TRUE
  ) %>% 
  as_tibble()


SOX004 <- 
  SOX004_raw %>% 
  mutate(municipality = municipality %>% fct_inorder()) %>% 
  spread(unit, value) %>% 
  unite(combi, type, time, sep = ", ")


SOX004 %>% 
  select(-combi) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = SOX004[["combi"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Amount (1000 DKK) Number
Public benefits total, 2022
Total 53.040 3.323
Kommune Kujalleq 11.531 721
Kommuneqarfik Sermersooq 19.953 1.045
Qeqqata Kommunia 10.504 609
Kommune Qeqertalik 5.857 462
Avannaata Kommunia 5.196 486


See the table in our Statbank: SOX004

Pensions
SOXPEN1_raw <- 
  statgl_url("SOXPEN1", lang = language) %>% 
  statgl_fetch(
    gender    = px_all(),
    payment   = px_all(),
    time      = px_top(),
    .col_code = TRUE
  ) %>% 
  as_tibble()


SOXPEN1 <- 
  SOXPEN1_raw %>% 
  mutate(
    gender = gender %>% fct_inorder(),
    payment = payment %>% fct_inorder()
  ) %>% 
  spread(gender, value)

SOXPEN1 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = SOXPEN1[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Total Man Woman
2022
Total 6.322 3.278 3.044
Age pension 3.859 1.994 1.865
Early retirement pension 2.463 1.284 1.179


See the table in our Statbank: SOXPEN1

Social Care


SOXFO10_raw <- 
  statgl_url("SOXFO10", lang = language) %>%
  statgl_fetch(
    "age group" = px_all(),
    gender      = px_all(),
    time        = px_top(1),
    .col_code   = TRUE
  ) %>% 
  as_tibble()



SOXFO10 <- 
  SOXFO10_raw %>% 
  filter(time == max(time)) %>% 
  mutate(
    `age group` = `age group` %>% fct_inorder(),
    gender = gender %>% fct_inorder()
  ) %>% 
  spread(gender, value)


SOXFO10 %>% 
  select(-time) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = SOXFO10[["time"]] %>% table()) %>% 
  row_spec(1, bold = TRUE)
Total Man Woman
2018
Total 1.131 706 425
0-17 years 199 138 61
18-30 years 292 189 103
31-40 years 175 107 68
41-50 years 143 86 57
51-60 years 238 137 101
61+ years 84 49 35


See the table in our Statbank: SOXFO10

Additional social subsidies
SOXBS02_raw <- 
  statgl_url("SOXBS02", lang = language) |> 
  statgl_fetch(
    district  = px_all(),
    unit      = "Antal",
    time      = px_top(7),
    .col_code = T
  ) |> 
  as_tibble()

SOXBS02 <- 
  SOXBS02_raw |> 
  spread(time, value)

SOXBS02 |> 
  select(-unit) |> 
  rename(" " = 1) |> 
  statgl_table() |> 
  pack_rows(index = table(SOXBS02["unit"])) |> 
  row_spec(1, bold = T)
2016 2017 2018 2019 2020 2021 2022
Number
Ilulissat 447 419 374 361 359 317 291
Ittoqotoormiit 25 23 23 32 22 19 25
Kangaatsiaq 45 48 37 35 28 35 32
Maniitsoq 302 291 316 302 293 283 279
Nanortalik 185 151 144 135 105 111 115
Narsaq 215 198 179 172 172 154 162
Nuuk 1.134 1.068 1.015 1.015 1.023 1.000 980
Paamiut 231 191 193 186 183 176 158
Qaqortoq 393 356 306 302 279 281 309
Qasigiannguit 149 140 126 112 106 108 93
Qeqertarsuaq 74 75 72 62 60 68 62
Qaanaaq 64 49 54 51 47 43 43
Sisimiut 545 522 533 499 509 510 495
Tasiilaq 168 153 153 153 142 144 135
Total 4.421 4.115 3.941 3.822 3.729 3.653 3.527
Upernavik 43 39 45 38 26 36 29
Uummannaq 91 75 73 71 69 68 52
Aasiaat 310 317 298 296 306 300 267


See the table in our Statbank: SOXBS02

Economically disadvantaged


SODOU01_raw <- 
  statgl_url("SOXOU01", lang = language) %>% 
  statgl_fetch(
    "inventory variable" = c("Andel50", "Andel60"),
    gender = px_all(),
    year = px_top(1),
    .col_code = TRUE
  ) %>% 
  as_tibble()


SODOU01 <- 
  SODOU01_raw %>% 
  mutate(`inventory variable` = `inventory variable` %>% fct_inorder()) %>% 
  arrange(desc(gender)) %>% 
  mutate(gender = gender %>% fct_inorder() %>% fct_rev()) %>% 
  spread(gender, value)
  

SODOU01 %>% 
  select(-year) %>% 
  rename(" " = 1) %>% 
  statgl_table() %>% 
  pack_rows(index = SODOU01[["year"]] %>% table())
Female Male Total
2022
fraction below 50% 4,3 5,0 4,7
fraction below 60% 8,4 9,2 8,8


See the table in our Statbank: SOXOU01


Last updated: 17. april 2024
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQoNCmxhbmd1YWdlICA8LSBwYXJhbXMkbGFuZw0Kb3B0aW9uICAgIDwtIHBhc3RlMCgiP2xhbmc9IiwgbGFuZ3VhZ2UsICImc2VsZWN0IikNCmxvZ28gICAgICA8LSBwYXN0ZTAoZ2V0d2QoKSwiL2FkZC9sb2dvLmdpZiIpDQp0eHQgICAgICAgPC0gcmVhZF95YW1sKHBhc3RlMChnZXR3ZCgpLCAiL2FkZC90eHQueW1sIiksIGZpbGVFbmNvZGluZyA9ICJJU08tODg1OS0xIikNCnNvdXJjZSAgICA8LSB0eHQkc291cmNlW2xhbmd1YWdlXSAlPiUgdW5saXN0KCkNCg0KeGFyaW5nYW5FeHRyYTo6dXNlX2NsaXBib2FyZCgpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQoNCi5hY2NvcmRpb24gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5OTAwOw0KICBjb2xvcjogd2hpdGU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgcGFkZGluZzogMThweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJvcmRlcjogbm9uZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBvdXRsaW5lOiBub25lOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IDAuNHM7DQp9DQoNCi5hY3RpdmUsIC5hY2NvcmRpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjk3MjQyOw0KfQ0KDQouYWNjb3JkaW9uOmFmdGVyIHsNCiAgY29udGVudDogJ1wwMDJCJzsNCiAgY29sb3I6ICM3Nzc7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmbG9hdDogcmlnaHQ7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQp9DQoNCi5hY3RpdmU6YWZ0ZXIgew0KICBjb250ZW50OiAiXDIyMTIiOw0KfQ0KDQoucGFuZWwgew0KICBwYWRkaW5nOiAwcHggNXB4IDBweCA1cHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBtYXgtaGVpZ2h0OiAwOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgb3ZlcmZsb3cteTogaGlkZGVuOw0KICBvdmVyZmxvdy14OiBhdXRvOw0KICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7DQp9DQoNCmRldGFpbHMgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KZGV0YWlscyA+IHN1bW1hcnkgew0KICBwYWRkaW5nOiA0cHggMTJweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDdmOTk7DQogIGJvcmRlcjogc29saWQ7DQogIGJvcmRlci1jb2xvcjogd2hpdGU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiB3aGl0ZTsNCn0NCg0KZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhNDFhOw0KfQ0KDQoNCi50aXRsZSB7DQogIGNvbG9yOiAjMWI1NDYzOw0KICBmb250LXNpemU6IDM2cHg7DQp9DQoNCg0KLnBlcnNvbmVyIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDQ0NTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLsO4a29ub21pIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDdGOTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDFweDsNCiAgcGFkZGluZy1ib3R0b206IDAuMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLnR2w6ZyZ8OlZW5kZSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjZmFhNDFhOw0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5jb250YWluZXIgew0KICB3aWR0aDogaW5oZXJpdDsNCn0NCg0KLnNjcm9sbC0xMDAgew0KICBtYXgtaGVpZ2h0OiAxMDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQp9DQoNCg0KcHJlIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCnByZVtjbGFzc10gew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCn0NCg0KYGBgDQoNCjxicj4NCjxicj4NCg0KPGNlbnRlcj4NCg0KLS0tDQogDQojIFtgciB0eHQkU08kdGl0bGVbbGFuZ3VhZ2VdYF17LnRpdGxlfQ0KIA0KLS0tDQo8L2NlbnRlcj4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkU08kc3ViMVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAxOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIlNPWDAwNiIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWDAwNn0NCg0KU09YMDA2X3JhdyA8LSANCiAgc3RhdGdsX3VybCgiU09YMDA2IiwgbGFuZyA9IGxhbmd1YWdlKSB8PiANCiAgc3RhdGdsX2ZldGNoKA0KICAgIG11bmljaXBhbGl0eSA9IHB4X2FsbCgpLA0KICAgIHVuaXQgICAgICAgICA9IHB4X2FsbCgpLA0KICAgIHR5cGUgICAgICAgICA9IHB4X2FsbCgpLA0KICAgIHRpbWUgICAgICAgICA9IHB4X3RvcCgpLA0KICAgIC5jb2xfY29kZSAgICA9IFQNCiAgKSB8PiANCiAgYXNfdGliYmxlKCkNCg0KU09YMDA2IDwtIA0KICBTT1gwMDZfcmF3IHw+IA0KICBtdXRhdGUobXVuaWNpcGFsaXR5ID0gbXVuaWNpcGFsaXR5IHw+IGZjdF9pbm9yZGVyKCksDQogICAgICAgICB0eXBlID0gdHlwZSB8PiBmY3RfaW5vcmRlcigpKSB8Pg0KICBzcHJlYWQodHlwZSwgdmFsdWUpIHw+IA0KICBhcnJhbmdlKHVuaXQpIA0KDQpTT1gwMDYgfD4gDQogIHNlbGVjdCgtYygyLCAzKSkgfD4gDQogIHJlbmFtZSgiICIgPSAxKSB8PiANCiAgc3RhdGdsX3RhYmxlKCkgfD4gDQogIHBhY2tfcm93cyhpbmRleCA9IHRhYmxlKFNPWDAwNltbM11dKSkgfD4gDQogIHBhY2tfcm93cyhpbmRleCA9IHRhYmxlKFNPWDAwNlsyXSkpIHw+IA0KICByb3dfc3BlYyhjKDEsIDcpLCBib2xkID0gVCkNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfSBgciBwYXN0ZShzb3VyY2UsICJTT1gwMDYiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxL2IxNmQ2ZGIzLTlmYWItNGRiMi1hMjIyLTA2OTZmYWY4Mzg5NCIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4NCjwvZGV0YWlscz4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkU08kc3ViMltsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJTT1hQVjAwNCIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWFBWMDA0fQ0KDQpTT1hQVjAwNF9yYXcgPC0gDQogIHN0YXRnbF91cmwoIlNPWFBWMDA0IiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgIG11bmljaXBhbGl0eSA9IHB4X2FsbCgpLA0KICAgIHllYXIgPSBweF90b3AoMSksDQogICAgLmNvbF9jb2RlID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KDQoNClNPWFBWMDA0X3JhdyAlPiUgDQogIG11dGF0ZShtdW5pY2lwYWxpdHkgPSBtdW5pY2lwYWxpdHkgJT4lIGZjdF9pbm9yZGVyKCkpICU+JSANCiAgc3ByZWFkKHllYXIsIHZhbHVlKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcm93X3NwZWMoMSwgYm9sZCA9IFRSVUUpDQoNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIlNPWFBWMDA0IilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS8zNWZmMjk4My1lOTI5LTRjYWMtOWE0NS1jZTdhZmQ0NzJjMWYiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KPC9kZXRhaWxzPg0KDQo8ZGV0YWlscz4gPHN1bW1hcnk+IGByIHR4dCRTTyRzdWIzW2xhbmd1YWdlXWAgPC9zdW1tYXJ5PiANCjxicj4NCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAzOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIlNPWDAwNCIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWDAwNH0NCg0KU09YMDA0X3JhdyA8LSANCiAgc3RhdGdsX3VybCgiU09YMDA0IiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICBtdW5pY2lwYWxpdHkgPSBweF9hbGwoKSwNCiAgICB1bml0ICAgICAgICAgPSBweF9hbGwoKSwNCiAgICB0eXBlICAgICAgICAgPSAxMCwNCiAgICB0aW1lICAgICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgICAgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQoNClNPWDAwNCA8LSANCiAgU09YMDA0X3JhdyAlPiUgDQogIG11dGF0ZShtdW5pY2lwYWxpdHkgPSBtdW5pY2lwYWxpdHkgJT4lIGZjdF9pbm9yZGVyKCkpICU+JSANCiAgc3ByZWFkKHVuaXQsIHZhbHVlKSAlPiUgDQogIHVuaXRlKGNvbWJpLCB0eXBlLCB0aW1lLCBzZXAgPSAiLCAiKQ0KDQoNClNPWDAwNCAlPiUgDQogIHNlbGVjdCgtY29tYmkpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBTT1gwMDRbWyJjb21iaSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiU09YMDA0IilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS8xNmRjYTg4Ni0zMjY1LTRkNGYtYjUzOS03NzBmZjE5MTM1N2YiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KPC9kZXRhaWxzPg0KDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JFNPJHN1YjRbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+IA0KPGJyPg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDQ6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiU09YUEVOMSIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIEFMWEFMSzR9DQoNClNPWFBFTjFfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJTT1hQRU4xIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICBnZW5kZXIgICAgPSBweF9hbGwoKSwNCiAgICBwYXltZW50ICAgPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQoNClNPWFBFTjEgPC0gDQogIFNPWFBFTjFfcmF3ICU+JSANCiAgbXV0YXRlKA0KICAgIGdlbmRlciA9IGdlbmRlciAlPiUgZmN0X2lub3JkZXIoKSwNCiAgICBwYXltZW50ID0gcGF5bWVudCAlPiUgZmN0X2lub3JkZXIoKQ0KICApICU+JSANCiAgc3ByZWFkKGdlbmRlciwgdmFsdWUpDQoNClNPWFBFTjEgJT4lIA0KICBzZWxlY3QoLXRpbWUpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBTT1hQRU4xW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIlNPWFBFTjEiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzBmYTk0YWNlLTk2OWQtNDI5YS04Yjg3LWNhOWNkMmI1ZGFiNyIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQoNCjwvZGV0YWlscz4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkU08kc3ViNVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4NCjxicj4NCg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDU6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiU09YRk8xMCIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWEZPMTB9DQoNClNPWEZPMTBfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJTT1hGTzEwIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgICJhZ2UgZ3JvdXAiID0gcHhfYWxsKCksDQogICAgZ2VuZGVyICAgICAgPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgICA9IHB4X3RvcCgxKSwNCiAgICAuY29sX2NvZGUgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCg0KDQpTT1hGTzEwIDwtIA0KICBTT1hGTzEwX3JhdyAlPiUgDQogIGZpbHRlcih0aW1lID09IG1heCh0aW1lKSkgJT4lIA0KICBtdXRhdGUoDQogICAgYGFnZSBncm91cGAgPSBgYWdlIGdyb3VwYCAlPiUgZmN0X2lub3JkZXIoKSwNCiAgICBnZW5kZXIgPSBnZW5kZXIgJT4lIGZjdF9pbm9yZGVyKCkNCiAgKSAlPiUgDQogIHNwcmVhZChnZW5kZXIsIHZhbHVlKQ0KDQoNClNPWEZPMTAgJT4lIA0KICBzZWxlY3QoLXRpbWUpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBTT1hGTzEwW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJTT1hGTzEwIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS9lZTFhZGYzMS00NTdjLTQ5YTctOGJjNy01NGEwZTBhOWZjOTAiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KDQo8L2RldGFpbHM+DQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JFNPJHN1YjZbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgNjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJTT1hCUzAyIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCmBgYHtyIFNPWEJTMDJ9DQoNClNPWEJTMDJfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJTT1hCUzAyIiwgbGFuZyA9IGxhbmd1YWdlKSB8PiANCiAgc3RhdGdsX2ZldGNoKA0KICAgIGRpc3RyaWN0ICA9IHB4X2FsbCgpLA0KICAgIHVuaXQgICAgICA9ICJBbnRhbCIsDQogICAgdGltZSAgICAgID0gcHhfdG9wKDcpLA0KICAgIC5jb2xfY29kZSA9IFQNCiAgKSB8PiANCiAgYXNfdGliYmxlKCkNCg0KU09YQlMwMiA8LSANCiAgU09YQlMwMl9yYXcgfD4gDQogIHNwcmVhZCh0aW1lLCB2YWx1ZSkNCg0KU09YQlMwMiB8PiANCiAgc2VsZWN0KC11bml0KSB8PiANCiAgcmVuYW1lKCIgIiA9IDEpIHw+IA0KICBzdGF0Z2xfdGFibGUoKSB8PiANCiAgcGFja19yb3dzKGluZGV4ID0gdGFibGUoU09YQlMwMlsidW5pdCJdKSkgfD4gDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUKQ0KDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiU09YQlMwMiIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvMzk4OGViYTAtNjc4MC00MzZkLTgxZGEtYmU3M2Y4NzRiMjY3Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2Pg0KPC9kZXRhaWxzPg0KDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JFNPJHN1YjdbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCA3OiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIlNPWE9VMDEiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBTT1hPVTAxfQ0KDQpTT0RPVTAxX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiU09YT1UwMSIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lIA0KICBzdGF0Z2xfZmV0Y2goDQogICAgImludmVudG9yeSB2YXJpYWJsZSIgPSBjKCJBbmRlbDUwIiwgIkFuZGVsNjAiKSwNCiAgICBnZW5kZXIgPSBweF9hbGwoKSwNCiAgICB5ZWFyID0gcHhfdG9wKDEpLA0KICAgIC5jb2xfY29kZSA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCg0KU09ET1UwMSA8LSANCiAgU09ET1UwMV9yYXcgJT4lIA0KICBtdXRhdGUoYGludmVudG9yeSB2YXJpYWJsZWAgPSBgaW52ZW50b3J5IHZhcmlhYmxlYCAlPiUgZmN0X2lub3JkZXIoKSkgJT4lIA0KICBhcnJhbmdlKGRlc2MoZ2VuZGVyKSkgJT4lIA0KICBtdXRhdGUoZ2VuZGVyID0gZ2VuZGVyICU+JSBmY3RfaW5vcmRlcigpICU+JSBmY3RfcmV2KCkpICU+JSANCiAgc3ByZWFkKGdlbmRlciwgdmFsdWUpDQogIA0KDQpTT0RPVTAxICU+JSANCiAgc2VsZWN0KC15ZWFyKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gU09ET1UwMVtbInllYXIiXV0gJT4lIHRhYmxlKCkpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiU09YT1UwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvYzdiYzlkNGItNGM5Ny00NjJkLWJiZDMtMjdjOTY4ZmM0MDU4Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KPC9kZXRhaWxzPg0KDQoNCjxociBzdHlsZT0iYm9yZGVyOjFweCByaWRnZSBsaWdodGdyYXkiPiA8L2hyPg0KPGNlbnRlcj4gPHNwYW4gc3R5bGU9J2NvbG9yOiNEM0QzRDM7IGZvbnQtc2l6ZTo5MCU7Jz4gYHIgcGFzdGUodHh0JHVwZGF0ZVtsYW5ndWFnZV0sIGZvcm1hdChTeXMuRGF0ZSgpLCAiJWQuICVCICVZIikpYCA8L3NwYW4+IDwvY2VudGVyPg0KDQoNCg0KDQo8c2NyaXB0Pg0KdmFyIGFjYyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFjY29yZGlvbiIpOw0KdmFyIGk7DQoNCmZvciAoaSA9IDA7IGkgPCBhY2MubGVuZ3RoOyBpKyspIHsNCiAgYWNjW2ldLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7DQogICAgdGhpcy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiKTsNCiAgICB2YXIgcGFuZWwgPSB0aGlzLm5leHRFbGVtZW50U2libGluZzsNCiAgICBpZiAocGFuZWwuc3R5bGUubWF4SGVpZ2h0KSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBudWxsOw0KICAgIH0gZWxzZSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBwYW5lbC5zY3JvbGxIZWlnaHQgKyAicHgiOw0KICAgIH0gDQogIH0pOw0KfQ0KPC9zY3JpcHQ+DQoNCg0K